作者:血影修罗 | 来源:互联网 | 2023-10-12 12:14
篇首语:本文由编程笔记#小编为大家整理,主要介绍了背景建模技术:背景减法库(BGSLibrary)的基本框架与入口函数main()的功能相关的知识,希望对你有一定的参考价值。
篇首语:本文由编程笔记#小编为大家整理,主要介绍了背景建模技术:背景减法库(BGS Library)的基本框架与入口函数main()的功能相关的知识,希望对你有一定的参考价值。
背景减法库(BGS Library = background subtraction library)包含了37种背景建模算法,也是目前国际上关于背景建模技术研究最全也最权威的资料。本文将更加详细的介绍背景减法库(BGS Library)的基本框架与入口函数main()的功能。
BGS库的整体框架在背景建模技术(二)中已经全部给出,此处从函数的角度再次给出BGS库的基本框架,有利于代码的修改与维护。
如下图所示是基于C++的BGS库的函数流程图:
接下来将会对每个函数进行更加详细的分析。
首先,先看入口函数main(),代码如下:
#include "Config.h"
#include "VideoAnalysis.h"
#include <iostream>
using namespace std;
namespace bgslibrary
class Main
private:
Main();
public:
static void start(int argc, const char **argv)
cout <<"-----------------------------------------" < cout <<"Background Subtraction Library v1.9.2 " < cout <<"http://code.google.com/p/bgslibrary " < cout <<"by: " < cout <<"Andrews Sobral (andrewssobral&#64;gmail.com) " < cout <<"Optimized by: " < cout <<"Rui-Dong Fang(National Huaqiao University)" < cout <<"-----------------------------------------" < cout <<"Using OpenCV version " < try
int key &#61; KEY_ESC;
do
VideoAnalysis* videoAnalysis &#61; new VideoAnalysis;
if (videoAnalysis->setup(argc, argv)) ///videoAnalysis->setup(argc, argv)
videoAnalysis->start();
cout <<"Processing finished, enter:" < cout <<"R - Repeat" < cout <<"Q - Quit" < key &#61; cv::waitKey();
cv::destroyAllWindows();
delete videoAnalysis;
while (key &#61;&#61; KEY_REPEAT);
catch (const std::exception& ex)
cout <<"std::exception:" < return;
catch (...)
cout <<"Unknow error" < return;
#ifdef WIN32
//system("pause");
#endif
;
int main(int argc, const char **argv)
bgslibrary::Main::start(argc, argv);
return 0;
在main&#xff08;&#xff09;函数中&#xff0c;除了打印出相关信息和设置waitKey&#xff08;&#xff09;以外&#xff0c;主要就是调用了VIdeoAnalysis.cpp&#xff08;将在下一篇博文中分析&#xff09;中的videoAnalysis->setup(argc, argv)和videoAnalysis->start()。下面给出Main.cpp的代码流程图&#xff1a;